﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;



namespace ragipo
{
    /// <summary>
    /// Classe Artiste
    /// </summary>
    public class Artist
    {

        #region Champs

        /// <summary>
        /// Identifiant de l'artiste.
        /// </summary>
        private string _id = "Inconnu";

        /// <summary>
        /// Nom de l'artiste.
        /// </summary>
        private string _name = "Inconnu";

        /// <summary>
        /// Lien de la page deezer de l'artiste.
        /// </summary>
        private string _link = "Inconnu";

        /// <summary>
        /// Lien de l'image de l'artiste.
        /// </summary>
        private string _picture = "Inconnu";

        /// <summary>
        /// Nombre d'albums de l'artiste.
        /// </summary>
        private int _nbAlbums = 0;

        #endregion

        #region Propriétés

        /// <summary>
        /// Id de l'artiste
        /// </summary>
        public string id
        {
            get { return _id; }
            private set { _id = value; }
        }

        /// <summary>
        /// Nom de l'artiste
        /// </summary>
        public string name
        {
            get { return _name; }
            private set { _name = value; }
        }

        /// <summary>
        /// Lien de l'artiste
        /// </summary>
        public string link
        {
            get { return _link; }
            private set { _link = value; }
        }

        /// <summary>
        /// Image de l'artiste
        /// </summary>
        public string picture
        {
            get { return _picture; }
            private set { _picture = value; }
        }

        /// <summary>
        /// Nombre d'albums de l'artite
        /// </summary>
        public int nbAlbums
        {
            get { return _nbAlbums; }
            private set { _nbAlbums = value; }
        }

        #endregion

        #region Constructeurs

        /// <summary>
        /// Initialise une nouvelle instance par défaut de la classe Artist.
        /// Les propriétés de l'artiste ne peuvent pas être modifiées par la suite.
        /// </summary>
        public Artist()
        {
        }

        /// <summary>
        /// Initialise une nouvelle instance de la classe Artist.
        /// </summary>
        /// <param name="id">Identifiant de l'artiste</param>
        /// <param name="name">Nom de l'artiste</param>
        public Artist(string id, string name)
        {
            this.id = id;
            this.name = name;
        }

        /// <summary>
        /// Initialise une nouvelle instance de la classe Artist.
        /// </summary>
        /// <param name="id">Identifiant de l'artiste</param>
        /// <param name="name">Nom de l'artiste</param>
        /// <param name="link">Lien de détail de l'artiste.</param>
        /// <param name="picture">Lien de l'image de l'artiste</param>
        public Artist(string id, string name, string link, string picture)
        {
            this.id = id;
            this.name = name;
            this.link = link;
            this.picture = picture;

        }

        /// <summary>
        /// Initialise une nouvelle instance de la classe Artist.
        /// </summary>
        /// <param name="id">Identifiant de l'artiste.</param>
        /// <param name="name">Nom de l'artiste.</param>
        /// <param name="link">Uri de détail de l'artiste.</param>
        /// <param name="picture">Uri d'une photo de l'artiste.</param>
        /// <param name="nbAlbums">Nombre d'albums de l'artiste.</param>
        /// <param name="nbFans">Nombre de fans de l'artiste.</param>
        public Artist(string id, string name, string link, string picture, int nbAlbums)
        {
            this.id = id;
            this.name = name;
            this.link = link;
            this.picture = picture;
            this.nbAlbums = nbAlbums;
        }

        /// <summary>
        /// Initialise une nouvelle instance de la classe Artist
        /// </summary>
        /// <param name="id"></param>
        /// <param name="name"></param>
        /// <param name="nbAlbums"></param>
        public Artist(string id, string name, int nbAlbums)
        {
            this.id = id;
            this.name = name;
            this.nbAlbums = nbAlbums;
        }

        /// <summary>
        /// Initialise une nouvelle instance de la classe Artist
        /// </summary>
        /// <param name="name"></param>
        public Artist(string name)
        {
            this.name = name;
        }

        #endregion

        #region Méthodes redéfinies

        /// <summary>
        /// Obtient le nom de l'artiste.
        /// </summary>
        /// <returns>Nom de l'artiste.</returns>
        public override string ToString()
        {
            return name;
        }

        #endregion

    }








}
